/**
 * 2009-10-27 下午04:25:12 
 * esignature
 * com.smc.dao
 * DocumentDao
 */
package com.smc.dao;

import java.util.List;

import com.smc.action.document.NumDocument;
import com.smc.domain.model.Document;

/**
 * @author chenheng
 * @version 0.0.1
 * 持久层文档操作接口
 */
public interface DocumentDao {
	/**
	 * 查询特定医生的（未）签名文档
	 * @param signed	是否签名
	 * @param uuid	用户主键
	 * @param pageIndex		当前页数
	 * @param pageSize		第面显示记录条数
	 * @return
	 */
	public List<Document> fetch_US_DO_FE_document(boolean signed,String uuid,int pageIndex,int pageSize);
	/**
	 * 统计特定医生（未）签名文档数量
	 * @param signed	是否签名
	 * @param uuid		用户主键
	 * @return
	 */
	public int count_US_DO_FE_document(boolean signed,String uuid);
	/**
	 * 操作员分派文档给特定的用户
	 * @param document
	 */
	public void save_OP_DO_SA_document(Document document);
	/**
	 * 医生保存更更新文档
	 * @param document
	 */
	public void save_US_DO_SA_document(Document document);
	/**
	 * 医生查询特定文档
	 * @param uuid	文档主键
	 * @return
	 */
	public Document fetch_US_DO_FE_document(String uuid);
	/**
	 * 医院用户取得文档数量
	 * @param uuid	用户主键
	 * @param orderItem		排序单元
	 * @param pageIndex		当前页数
	 * @param pageSize		每页显示条目数量
	 * @return
	 */
	public List<NumDocument> fetch_HO_DO_FE_documentNum(String uuid,String orderItem,int pageIndex,int pageSize);
	/**
	 * 医院用户按未签名文档数取医生文档数量
	 * @param uuid	用户主键
	 * @param orderItem 	排序单元
	 * @param pageIndex		当前页数
	 * @param pageSize		每页显示条目数量
	 * @return
	 */
	public List<NumDocument> fetch_HO_DO_FE_documentRankNum(String uuid,String orderItem,int pageIndex,int pageSize);
	/**
	 * 医院用户取得医生总数
	 * @param uuid	用户主键
	 * @return
	 */
	public int count_HO_DO_FE_documentNum(String uuid);
	/**
	 * 医院用户统计签名文档数量
	 * @param uuid	用户主键
	 * @param signed	是否签名
	 * @return
	 */
	public int count_HO_DO_FE_documentNum(String uuid,boolean signed);
	/**
	 * 医院用户取得（未）签名文档
	 * @param uuid	用户主键
	 * @param signed		是否签名
	 * @param pageIndex		当前页数
	 * @param pageSize		每页显示条目数量
	 * @return
	 */
	public List<Document> fetch_HO_DO_FE_document(String uuid,boolean signed,int pageIndex,int pageSize);
	/**
	 * 医院用户搜索文档
	 * @param uuid	用户主键
	 * @param parameters	参数，键值对（key/value）
	 * @param pageIndex		当前页面数
	 * @param pageSize		每页显示条目数量 
	 * @return
	 */
	public List<Document> fetch_HO_DO_FE_document(String uuid,String[] parameters,int pageIndex,int pageSize);
	/**
	 * 医院用户统计搜索文档的数量
	 * @param uuid	用户主键
	 * @param parameters	参数，键值对(key/value)
	 * @return
	 */
	public int count_HO_DO_FE_document(String uuid,String[] parameters) ;
	/**
	 * 医院用户按病人病历号取医生文档数量
	 * @param uuid	用户主键
	 * @param orderItme		排序单元
	 * @param pageIndex		当前页数
	 * @param pageSize		每页显示条目数量
	 * @return
	 */
	public List<NumDocument> fetch_HO_DO_FE_documentPatientNum(String uuid,String orderItem ,int pageIndex,int pageSize);
}
